menu: Fix up CSS node ordering
authorMatthias Clasen <mclasen@redhat.com>
Tue, 3 Nov 2015 02:49:10 +0000 (21:49 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 3 Nov 2015 02:49:10 +0000 (21:49 -0500)
Keep the bottom arrow node at the end, where it belongs.

gtk/gtkmenu.c

index ac516f0f45ebc407987c89e3ade3d5d65820141b..3bbc9aac2c14716e81196cefb876d59f9d6a710c 100644 (file)
@@ -1444,6 +1444,7 @@ gtk_menu_real_insert (GtkMenuShell *menu_shell,
   GtkMenu *menu = GTK_MENU (menu_shell);
   GtkMenuPrivate *priv = menu->priv;
   AttachInfo *ai = get_attach_info (child);
+  GtkCssNode *widget_node, *child_node;
 
   ai->left_attach = -1;
   ai->right_attach = -1;
@@ -1453,6 +1454,10 @@ gtk_menu_real_insert (GtkMenuShell *menu_shell,
   if (gtk_widget_get_realized (GTK_WIDGET (menu_shell)))
     gtk_widget_set_parent_window (child, priv->bin_window);
 
+  widget_node = gtk_widget_get_css_node (GTK_WIDGET (menu));
+  child_node = gtk_widget_get_css_node (child);
+  gtk_css_node_insert_before (widget_node, child_node, priv->bottom_arrow);
+
   GTK_MENU_SHELL_CLASS (gtk_menu_parent_class)->insert (menu_shell, child, position);
 
   menu_queue_resize (menu);
@@ -5186,6 +5191,7 @@ gtk_menu_attach (GtkMenu   *menu,
 {
   GtkMenuShell *menu_shell;
   GtkWidget *parent;
+  GtkCssNode *widget_node, *child_node;
 
   g_return_if_fail (GTK_IS_MENU (menu));
   g_return_if_fail (GTK_IS_MENU_ITEM (child));
@@ -5207,6 +5213,10 @@ gtk_menu_attach (GtkMenu   *menu,
 
       menu_shell->priv->children = g_list_append (menu_shell->priv->children, child);
 
+      widget_node = gtk_widget_get_css_node (GTK_WIDGET (menu));
+      child_node = gtk_widget_get_css_node (child);
+      gtk_css_node_insert_before (widget_node, child_node, menu->priv->bottom_arrow);
+
       gtk_widget_set_parent (child, GTK_WIDGET (menu));
 
       menu_queue_resize (menu);